const rp = require('request-promise-native');

const util = require('../util');

/**
 * 响应报文通知回调
 */

const logger = util.logger;
const NOTICE_TIMEOUT = 20000;

module.exports = {
  notice: (sequence, json) =>{    
    let options = {
      method: 'POST',
      uri: json.back_url,
      headers: {'content-type': 'application/json'},
      body: {
        header: json.header,
        content: json.content,
        sequence: sequence
      },
      timeout: NOTICE_TIMEOUT,
      json: true
    };

    logger.debug('notice json request: ', options);

    //由于此处使用的异步框架不同，所以创建了一个新的 Promise 对象，正常情况不应这样使用
    return new Promise((suc, fail) =>{
      rp(options).then((res) =>{
        logger.debug(`请求 ${options.uri} 返回：`, res);
        suc(res);
      })
      .catch((err) =>{
        logger.error(`请求 ${options.uri} 异常：`, err.error);
        fail(err);
      });
    });
  }
};